package spynx.desl.runtime;


public interface IExecutionContext {
	IVariableFrame Variables();
	
	IVariable createVariable(String name, Object value);
	
	IVariable createVariable(String name, Class<? extends IVariable> clazz, Object value);
	
	IObjectVariable createObjectVariable(String name, String className);

	IRuntimeEntity resolveIdentifier(String ident);
	
	Object resolveValue(Object value);
	
	IDataStorage resolveReference(Object value);
	
	IExecutionContext getParent();
	
	IExecutionContext getRootContext();
	
	IExecutionContext createChildContext();
	
	void clearContext();
}
